package com.demo.java.net.socket;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.net.ServerSocket;
import java.net.Socket;

/**
 * 非多线程的server端,只能有一个客户端连接进来
 */
public class TestSocketServer {
    public static void main(String[] args) throws IOException {
        ServerSocket server = new ServerSocket(9999);
        //服务器端的accept()侦听并接受到此套接字的连接。此方法在连接传入之前一直阻塞。
        Socket client = server.accept();
        //这个是从客户端读取信息的
        BufferedReader in = new BufferedReader(new InputStreamReader(client.getInputStream()));
        //这个是发信息给客户端的
        PrintWriter out = new PrintWriter(client.getOutputStream());
        while (true) {
            //读取客户端发来的信息
            String str = in.readLine();
            //显示读取到的信息
            System.out.println("客户端发来信息："+str);
            //返回信息给客户端
            out.println("服务器已收到你的数据!");
            out.flush();
            //end是客户端与服务器端断开连接的自定义的标识位
            if (str.equals("end"))
                break;
        }
        //关闭相关资源，同时关闭客户端的连接
        in.close();
        out.close();
        client.close();
    }

}
